Feat/complete pytdx features - #40
Open
jackluo2012 wants to merge 6 commits into
Open
Conversation
主要改进: - 将TCP超时从100ms增加到5秒,解决连接超时问题 - 修复服务器IP列表测试,要求至少3个可用服务器 - 修复生命周期编译警告,统一使用 Gbbq<'_> - 添加环境变量控制集成测试 (RUSTDX_SKIP_INTEGRATION_TESTS) 测试结果: - 所有13个测试通过 - 0个编译警告 - 集成测试可以通过环境变量跳过 修改文件: - src/tcp/mod.rs: 超时配置从100ms增加到5秒 - src/tcp/ip.rs: 改进服务器可用性测试 - src/file/gbbq/mod.rs: 修复生命周期语法 - src/tcp/tests.rs, src/tcp/basic.rs, tests/tcp.rs: 添加集成测试控制 - tests/struct_size.rs: 更新结构体大小快照
新增功能: 1. SecurityQuotes - 获取股票实时行情快照 - 支持一次获取多只股票(最多80只) - 包含价格、成交量、买卖五档等信息 - 对应pytdx的get_security_quotes 2. SecurityList - 获取股票列表 - 支持深市/沪市股票列表查询 - 每次返回1000只股票 - 支持分页获取 - 对应pytdx的get_security_list 3. MinuteTime - 获取分时数据 - 返回240个分时数据点(标准交易日) - 包含每分钟的价格和成交量 - 支持可变长度编码解析 - 对应pytdx的get_minute_time_data 技术细节: - 完整实现pytdx协议格式 - 所有功能通过单元测试(22个测试全部通过) - 实际TCP连接验证成功 - 与pytdx数据完全兼容 文件: - src/tcp/stock/quotes.rs (~336行) - src/tcp/stock/security_list.rs (~238行) - src/tcp/stock/minute_time.rs (~196行) - examples/* (5个示例程序)
## 新增功能 ### 1. IndexQuotes(指数行情) - ✅ 验证SecurityQuotes已支持指数数据(上证指数、深证成指等) - ✅ 创建test_index_quotes.rs示例程序 - ✅ 支持同时获取多个指数行情 ### 2. FinanceInfo(财务信息) - 实现get_finance_info功能 - 获取32个财务字段(股本、资产、利润、现金流等) - 完整示例程序test_finance_info.rs ### 3. Transaction(逐笔成交) - 实现get_transaction_data功能 - 获取tick-level成交数据(价格、成交量、买卖方向) - 完整示例程序test_transaction.rs ## Bug修复(关键) ### SecurityQuotes发送长度问题 - **问题**:send()返回整个582字节缓冲区而非实际需要长度 - **影响**:所有SecurityQuotes调用失败("failed to fill whole buffer") - **修复**:重写send()方法,只返回实际字节数(22 + stocks.len()*7) - **测试**:普通股票、指数行情全部验证通过 ## 测试结果 - 单元测试:29/29通过 - 功能验证: - 上证指数(000001): 3963.68 (+0.02%) - 深证成指(399001): 13603.89 (+0.01%) - 沪深300(000300): 4657.24 (+0.00%) - 平安银行财务数据:完整获取 - 逐笔成交数据:正常解析 ## 文件变更 - 新增:src/tcp/stock/finance_info.rs (297行) - 新增:src/tcp/stock/transaction.rs (214行) - 修改:src/tcp/stock/quotes.rs (修复send方法) - 修改:src/tcp/stock/mod.rs (模块导出) - 新增:3个示例程序 + 6个验证脚本 ## pytdx功能完整性 目前6大核心功能已全部实现: ✅ SecurityQuotes(股票+指数行情) ✅ SecurityList(股票列表) ✅ MinuteTime(分时数据) ✅ Transaction(逐笔成交) ✅ FinanceInfo(财务信息) ✅ IndexQuotes(指数行情,由SecurityQuotes支持)
## README.md 更新 新增"rustdx 库使用"章节(150+行),包含: ### 功能对照表 - 8大核心功能与pytdx对应关系 - 覆盖K线、除权、行情、列表、分时、逐笔、财务、指数 ### 6个详细使用示例 1. 获取股票实时行情 - SecurityQuotes 2. 获取指数行情 - 上证指数、深证成指、沪深300 3. 获取日线数据 - Kline 4. 获取财务信息 - FinanceInfo(32字段) 5. 获取分时数据 - MinuteTime(240数据点) 6. 获取逐笔成交 - Transaction(tick级别) ### 辅助说明 - 市场代码说明(深市0、沪市1) - 超时设置说明(默认5秒) - 完整示例程序列表(examples目录) ## CHANGELOG.md 更新 新增 v0.5.1 版本发布记录(100+行): ### 新增功能 - 6大核心功能模块详细说明 - SecurityQuotes 支持股票+指数 - FinanceInfo 32个财务字段 - Transaction 逐笔成交数据 - MinuteTime 分时数据 - SecurityList 股票列表 - IndexQuotes 指数行情 ### Bug修复 - SecurityQuotes 发送长度关键问题 - 影响范围、修复方案、验证结果 ### 测试验证 - 单元测试 29/29 通过 - 实际数据验证(上证、深证、沪深300) - pytdx 功能完整性对照表 ### 代码统计 - 新增模块3个、示例程序6个 - 代码行数 +1297行 ## 文档价值 1. **用户友好**:完整的示例代码,开箱即用 2. **功能透明**:清晰的pytdx功能对照 3. **易于上手**:从安装到6个典型场景全覆盖 4. **专业性**:详细的功能说明和测试数据
## 版本更新 - rustdx: 0.4.2 → 0.5.0 - rustdx-cmd: 0.5.0 (依赖更新为 rustdx 0.5.0) ## 变更说明 本次版本为重大功能更新(Minor版本升级): ### 新增功能 - ✅ SecurityQuotes - 股票和指数实时行情 - ✅ FinanceInfo - 32个财务字段 - ✅ Transaction - 逐笔成交数据 - ✅ MinuteTime - 分时数据 - ✅ SecurityList - 股票列表 - ✅ IndexQuotes - 指数行情支持 ### Bug修复 - 🔧 修复SecurityQuotes发送长度关键问题 ### 文档 - 📝 完善README库使用文档 - 📝 更新CHANGELOG v0.5.0记录 ### 兼容性 -⚠️ API有新增,但保持向后兼容 -⚠️ 建议用户更新到最新版本 ## 下一步 准备发布到 crates.io
## 库名变更 - rustdx → **rustdx-complete** - 原因:crates.io 上已有 rustdx,使用新名称发布 ## 更新内容 ### 依赖配置 - ✅ Cargo.toml - 库名和描述 - ✅ rustdx-cmd/Cargo.toml - 依赖引用 - ✅ tests-integration/Cargo.toml - 依赖引用 ### 代码引用 - ✅ rustdx-cmd/src - 所有 use 语句 - ✅ examples/ - 所有示例程序 - ✅ tests-integration/src - 所有测试代码 ### 文档更新 - ✅ README.md - 依赖说明和徽章 - ✅ crates.io 徽章链接 ## 验证结果 - ✅ 编译通过:`cargo check --lib` - ✅ 单元测试:29/29 通过 - ✅ 所有功能正常 ## 新库名优势 1. ✅ 清晰表明功能完整性 2. ✅ 可以立即发布到 crates.io 3. ✅ 不与原库冲突 4. ✅ 便于用户识别 ## 用户使用方式 ```toml [dependencies] rustdx-complete = "0.5.0" ``` ## 准备发布 所有更改已验证通过,可以发布到 crates.io
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.